使用 MsBuild 删除 LookInFolders VS 2008 - 9.0 中的键

发布于 2024-12-08 16:12:55 字数 1537 浏览 2 评论 0原文

我使用 MsBuild 注册 VS Addin。

我需要在 MSBuild 中实现目标卸载。

如何使用 MsBuild 删除 SOFTWARE\Microsoft\VisualStudio\9.0\AutomationOptions\LookInFolders 注册表中的插件路径?

对于安装,我使用

    <Target Name="RegistryExtensions">

            <Message Text="Registry AddIn..."></Message>
            <Registry.Set
                RegistryHive="LocalMachine"
                Key="SOFTWARE\Microsoft\VisualStudio\9.0\AutomationOptions\LookInFolders"
                Value="$(ProgramFiles)\LifeCycle\AddIns"
                DataType="String" />

            <Message Text="Adding LifeCycle.targets to VisualStudio SafeImports ..."></Message>
            <Registry.Set
                RegistryHive="LocalMachine"
                Key="SOFTWARE\Microsoft\VisualStudio\9.0\MSBuild\SafeImports"
                Value="MyLifeCycle"
                DataType="String"
                Data="$(MSBuildExtensionsPath)\LifeCycle.targets" ContinueOnError="true">
            </Registry.Set>
        </Target>

    <Target Name="UnRegistryAddin">
<!-- TODO -->
        </Target>

尝试获取值,但得到空字符串

    <Registry.GetKey
        RegistryHive="LocalMachine"
        Key="SOFTWARE\Microsoft\VisualStudio\9.0\AutomationOptions\LookInFolders"
        Value="$(ProgramFiles)\LifeCycle\AddIns">
        <Output TaskParameter="Data" PropertyName="Addin1"/>
    </Registry.GetKey>

    <Message Text=" Addin1 $(Addin1)" />

I use MsBuild to Registry a VS Addin.

I need implement target Uninstall in MSBuild.

How can I delete my addin path in SOFTWARE\Microsoft\VisualStudio\9.0\AutomationOptions\LookInFolders registry using MsBuild ?

For install, I use

    <Target Name="RegistryExtensions">

            <Message Text="Registry AddIn..."></Message>
            <Registry.Set
                RegistryHive="LocalMachine"
                Key="SOFTWARE\Microsoft\VisualStudio\9.0\AutomationOptions\LookInFolders"
                Value="$(ProgramFiles)\LifeCycle\AddIns"
                DataType="String" />

            <Message Text="Adding LifeCycle.targets to VisualStudio SafeImports ..."></Message>
            <Registry.Set
                RegistryHive="LocalMachine"
                Key="SOFTWARE\Microsoft\VisualStudio\9.0\MSBuild\SafeImports"
                Value="MyLifeCycle"
                DataType="String"
                Data="$(MSBuildExtensionsPath)\LifeCycle.targets" ContinueOnError="true">
            </Registry.Set>
        </Target>

    <Target Name="UnRegistryAddin">
<!-- TODO -->
        </Target>

I try get the value, but I get Empty string

    <Registry.GetKey
        RegistryHive="LocalMachine"
        Key="SOFTWARE\Microsoft\VisualStudio\9.0\AutomationOptions\LookInFolders"
        Value="$(ProgramFiles)\LifeCycle\AddIns">
        <Output TaskParameter="Data" PropertyName="Addin1"/>
    </Registry.GetKey>

    <Message Text=" Addin1 $(Addin1)" />

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

紫﹏色ふ单纯 2024-12-15 16:12:56

您可以起诉 DeleteKey/DeleteKeyTree 注册表任务,请参阅MSBuild 扩展包帮助

<!-- Delete a key -->
        <MSBuild.ExtensionPack.Computer.Registry 
           TaskAction="DeleteKey" 
           RegistryHive="LocalMachine" 
           Key="SOFTWARE\ANewTemp"/>

我相信应该使用用于 Set 任务的语法:

<Registry.DeleteKey ...

重要(要设置的必需属性):

  • DeleteKey(必需:RegistryHive、Key)
  • DeleteKeyTree(必需:RegistryHive、Key)

You can sue DeleteKey/DeleteKeyTree Registry tasks, see MSBuild Extension Pack help

<!-- Delete a key -->
        <MSBuild.ExtensionPack.Computer.Registry 
           TaskAction="DeleteKey" 
           RegistryHive="LocalMachine" 
           Key="SOFTWARE\ANewTemp"/>

I believe it should work with the syntax you are used for the Set task:

<Registry.DeleteKey ...

Important (required attributes to be set):

  • DeleteKey (Required: RegistryHive, Key)
  • DeleteKeyTree (Required: RegistryHive, Key)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文