gpt4 book ai didi

.net - 如何在 csproj 模板中使用相对导入?

转载 作者:行者123 更新时间:2023-12-04 17:57:17 25 4
gpt4 key购买 nike

我创建了一个项目模板,其中包含一个 csproj,其中包含一个指向项目文件的导入,我在其中列出了所有第三方项目位置。我总是使用这个项目模板在同一个相对目录中创建项目。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="../../../3rdParty/ThirdParty.targets" />
...
<ItemGroup>
<Reference Include="Library, Version=$(LibraryVersion), Culture=neutral, PublicKeyToken=$(LibraryPublicKeyToken), processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>$(LibraryDir)LibraryDll.dll</HintPath>
</Reference>
</ItemGroup>
...
</Project>

csproj 文件在 Visual Studio 和从命令提示符运行 msbuild 时正常工作。当我尝试使用项目模板创建项目时,出现以下错误:

C:\Users...\AppData\Local\Temp\534cylld.o0p\Temp\MyModule.csproj(3,3): The imported project "C:\Users...\AppData\Local\3rdParty\ThirdParty.targets" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk.



似乎 Visual Studio 试图首先在临时位置打开项目。
我尝试将 $(MSBuildProjectDirectory) 添加到导入位置,希望它可能会强制它使用我想要的位置,但这也不起作用。

有什么建议?

最佳答案

您应该设置 CreateInPlace 属性(property)到true在 vstemplate 中。 documentation

Specifies whether to create the project and perform parameter replacement in the specified location, or perform parameter replacement in a temporary location and then save the project to the specified location.



如果希望相对路径起作用,则需要在创建项目的位置而不是临时位置进行参数替换。

关于.net - 如何在 csproj 模板中使用相对导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5948375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com