是否可以使用不同版本的.NET Framework引用另一个项目而不依赖它?

时间:2018-04-10 11:45:49

标签: visual-studio-2017 csproj

好的,所以我目前有两个项目。

安装程序 - .NET 4.0
服务 - .NET 4.5.2

我希望在Service项目之前构建Installer,因为输出文件被捆绑到Installer输出中。

我面临的问题是默认情况下,解决方案想要在安装程序之前构建服务项目。

如果我转到Project Dependencies以获取解决方案并将Service添加为Installer的依赖项。然后我可以从Visual Studio中构建解决方案。但是,我的问题是当我尝试从命令行构建时,这是构建服务器的要求。我收到以下错误。

C:\Program Files\dotnet\sdk\2.1.300-preview1-008174\Microsoft.Common.CurrentVersion.targets(1603,5): error : Project 'C:\Users\username\Source\Repos\agents\src\Service\LMS.Service.csproj' targets 'net452'. It cannot be referenced by a project that targets '.NETFramework,Version=v4.0'. [C:\Users\username\Source\Repos\agents\src\Installer\Installer.csproj]

我有点困惑,因为我没有直接引用该项目,只是将其添加为构建依赖项。

执行的命令是dotnet build "C:/Users/username/Source/Repos/agents/src/LicenseMonitoringSystem.sln"

我也尝试了MSBuild等效的命令,但仍然得到相同的错误消息。

为了清楚起见,我使用的是新的.csproj格式。

更新

MSBuild命令

& "C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/MSBuild/15.0/Bin/amd64/MSBuild.exe" /m /v:normal /p:Configuration="Release" /p:Platform="Any CPU" /target:Build "C:/Users/username/Source/Repos/agents/src/LicenseMonitoringSystem.sln"

MSBuild输出

"C:\Users\usernames\Source\Repos\agents\src\LicenseMonitoringSystem.sln" (Build target) (1) ->
       "C:\Users\username\Source\Repos\agents\src\Installer\Installer.csproj.metaproj" (default target) (8) ->
       "C:\Users\username\Source\Repos\agents\src\Installer\Installer.csproj" (default target) (9) ->
       (_GetProjectReferenceTargetFrameworkProperties target) ->
         C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\amd64\Microsoft.Common.CurrentVersion.targets(1603,5): error : Project
        'C:\Users\username\Source\Repos\agents\src\Service\LMS.Service.csproj' targets 'net452'. It cannot be referenced by a project that targets '.NETFramew
       ork,Version=v4.0'. [C:\Users\username\Source\Repos\agents\src\Installer\Installer.csproj]

0 个答案:

没有答案