2017-01-19 46 views
1

这是从this question开始的后续步骤。如何在.csproj之前构建.xproj

由于我无法直接引用我的.xproj在Visual Studio中的.csproj,我不得不直接引用内置的net461 dll。所以在这种情况下,我希望我的.csproj在运行.csproj之前预编译.xproj。

我已经试过手动修改的.csproj和添加:

<ItemGroup> 
    <ProjectReference Include="..\SomeFolder\SomeProject.xproj"> 
     <Project>{1A94B405-2D01-4A09-90D5-A5B31180A03B}</Project> 
     <Name>SomeProjectNamespace</Name> 
    </ProjectReference> 
</ItemGroup> 

但是当我建立的.csproj,它不建立.xproj。

当我运行我的.csproj时,我将无法调试.xproj,这已经足够糟糕了......但至少当我运行.csproj时,我想确保我拥有我的最新版本。编译xproj。

+0

不是一个解决方案,但略有不同的方法。这两个项目都足够大,可以将它们分别保存为.NET和.NET Core?即为什么不统一他们呢? – Ignas

+0

@Ignas我会在将来的某个时候做到这一点...但它在另外4个相当大的项目中被引用。其中之一是Windows窗体项目(yup ...)。我必须构建一个.net核心API,并且我想至少共享同一个存储库系统(我将它移植到.NET核心,这很容易)。 –

回答

1

xproj < => Visual Studio 2015中的csproj引用始终是bug,并且从未运行良好。据我所知,没有好的解决方法。

也就是说,Visual Studio 2017 RC添加了对使用csproj构建.NET Core和.NET Standard的支持。这弃用了xproj和project.json。

有了这个新的格式,项目与项目之间的参考应该是这样的:

<!-- App.csproj --> 
<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
     <OutputType>Exe</OutputType> 
     <TargetFramework>net461</TargetFramework> 
    </PropertyGroup> 
    <ItemGroup> 
     <ProjectReference Include="..\Library\Library.csproj" /> 
    </ItemGroup> 
</Project> 

<!-- Library.csproj --> 
<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
     <TargetFramework>netstandard1.1</TargetFramework> 
    </PropertyGroup> 
</Project> 
相关问题