我正在创建一个具有本机依赖关系的Nuget包.我通过file在.nuspec文件中指定其他条目将它们放在包中而没有问题.
但是,我还想将这些复制到将要使用我的包的项目的输出文件夹中,以便可以在运行时找到依赖项.
我的想法是将本机依赖项添加到项目并将其设置BuildAction为CopyToOutputDirectory.我还使用下面的PowerShell脚本进行了管理:
param($installPath, $toolsPath, $package, $project)
Function add_file($file)
{
$do_add = 1
foreach($item in $project.DTE.ActiveSolutionProjects[0].ProjectItems)
{
if ($item -eq $file)
{ $do_add = 0 }
}
if ($do_add -eq 1)
{
$added = $project.DTE.ItemOperations.AddExistingItem($file)
$added.Properties.Item("CopyToOutputDirectory").Value = 2
$added.Properties.Item("BuildAction").Value = 0
}
}
add_file(<dependency1>)
add_file(<dependency2>)
...
add_file(<dependencyN>)
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.
但是,现在我的项目完全被这些依赖项污染了.
有没有办法使用PowerShell将文件添加到项目中并将它们放在文件夹中?
或者是否有另一种方法来实现我想要的:将原生依赖项添加到NuGet包并使用我的Nu-package将它们输出到项目的bin-folder?
当我像这样在 XAML 中创建菜单时:
<Menu>
<MenuItem Height="auto" Header="{x:Static str:StringResources.File}">
<MenuItem Header="{x:Static str:StringResources.Open}"
InputGestureText="Ctrl+O"
Command="{Binding OpenFileCommand}"/>
<MenuItem Header="{x:Static str:StringResources.Save}"
InputGestureText="Ctrl+S"
Command="{Binding SaveFileCommand}"/>
<MenuItem Header="{x:Static str:StringResources.SaveAs}"
InputGestureText="Ctrl+Shift+S"
Command="{Binding SaveAsFileCommand}"/>
<MenuItem Header="{x:Static str:StringResources.Exit}"
InputGestureText="Alt+F4"
Click="MenuItemExit_Click"
/>
</MenuItem>
</Menu>
Run Code Online (Sandbox Code Playgroud)
菜单折叠出来,菜单的边缘与顶部菜单项的边缘右对齐(在这种情况下是文件)。这意味着菜单如下所示:
_____________________________________________
__________________|____|File|_____________________________-|_|X|
| | Open Ctrl+O| |
| | Save Ctrl+S| |
| | Save As.. Ctrl+Shift+S| |
| | Exit Alt+F4| |
Run Code Online (Sandbox Code Playgroud)
这看起来很难看,尤其是在非最大化窗口上,其中折叠菜单将大部分绘制在窗口之外。
我希望它看起来像这样:
_______________________________________________________________
|File|____________________________________________________|-_X|
| | Open Ctrl+O| |
| | Save Ctrl+S| |
| | Save As.. Ctrl+Shift+S| |
| | …Run Code Online (Sandbox Code Playgroud)