在 Visual Studio 中有几个“设置和部署”项目,其中之一是“ CAB 项目”。

但我实际上想要一个简单的“ZIP 项目”,它使我能够从我的解决方案中添加一些文件夹 + dll,并将它们全部打包在一个 zip 文件中,以便在网络上轻松分发。
有这样的项目类型吗?
当我想自己创建它时,我应该使用哪些资源和参考来构建它?
编辑
@Cheeso
我创建了一个虚拟的“类库”项目,它依赖于所有子项目。在这个虚拟项目中,我使用构建后事件来使用 7-zip 压缩 dll。但我希望有一个更好的解决方案。
我编写自己的服务器端控件并使用在.resx文件中存储的图像.在控制台应用程序中,此代码工作正常:
ResXResourceReader rsxr = new ResXResourceReader("Resource1.resx");
foreach (DictionaryEntry d in rsxr)
{
Console.WriteLine(d.Key.ToString() + ":\t" + d.Value.ToString());
}
rsxr.Close();
Run Code Online (Sandbox Code Playgroud)
但在这里
protected override void RenderContents(HtmlTextWriter output)
{
ResXResourceReader rsxr = new ResXResourceReader("Resource1.resx");
base.RenderContents(output);
foreach (DictionaryEntry d in rsxr)
{
output.Write(d.Key.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
我感到很恐怖:
找不到文件'C:\ Program Files\Common Files\Microsoft Shared\DevServer\10.0\Resource1.resx'
我尝试使用ResourceManager但它需要.resource文件.我无法访问resgen工具(命令promt不理解[resgen]命令)并安装它(发生错误).
第一:为什么我不能读.resx?
第二:如何安装resgen工具?
谢谢.
我正在使用实体框架。我创建了一个名为 Customer 的实体对象并添加了我的存储过程。
我的存储过程包含另外两个存储过程,它们在输出参数中返回一些字符串。我将两个存储过程的输出参数值连接到主存储过程中。
主存储过程也在输出参数中返回结果字符串。
我还为主存储过程创建了一个函数导入以返回连接的字符串。
当我运行应用程序时,我收到“商店数据提供程序返回的数据读取器没有足够的列来满足所请求的查询”。
我在第一个和第二个过程中没有 select 语句。让我知道如何返回主存储过程的输出参数值。
在下面查找更多信息。
Create Procedure MainProcedure
@Id int,
@MainResult nvarchar(max) output
AS
Begin
declare @firstResult nvarchar(max)
declare @secondResult nVarchar(max)
declare @MainResult nVarchar(max)
Exec FirstSP @Id,@firstResult Output
Exec SecondSP @Id,@secondResult Output
Set @MainResult=@firstResult+@secondResult
End
Run Code Online (Sandbox Code Playgroud)
实体代码看起来像
System.Data.Objects.ObjectResult<string> resultList = null;
var OutputParamter =new ObjectParameter("MainResult",typeof(string));
resultList = ent.MainProcedure(ID, OutputParamter);
Run Code Online (Sandbox Code Playgroud) 我正在使用“新的”Azure 存储模拟器命令行版本。在以前的版本中,可以在运行.
我再也找不到同一个文件,并查看了其他配置文件,但到目前为止还没有运气。有谁知道怎么改?
注意:这似乎是与SSDT项目一起使用的编译器的一个问题,它显然已在2017年RC中修复.我的问题类似于这里描述的问题.
我有一些代码拒绝让我把它写成一个表达式的函数成员.简而言之,我想这样做:
void foo() => bar();
Run Code Online (Sandbox Code Playgroud)
但IDE发脾气并要求我这样写:
void foo() { bar(); }
Run Code Online (Sandbox Code Playgroud)
我的意思是,这是两个额外的角色,但我不确定它为什么抱怨,错误也没有意义.它给了我以下3个错误:
完整代码看起来像这样.
public static void foo() => bar("some param"); // Errors on this line.
static void bar(string myParam) { //20 lines of code }
Run Code Online (Sandbox Code Playgroud)
我在C#交互式窗口中对此进行了测试,所有内容都编译并正确运行.我在代码中找不到任何不可打印的字符.
这是使用VS 2015社区,目标框架是4.6.1
完整代码:
using System.Data.SqlClient;
using Microsoft.SqlServer.Server;
public partial class Triggers
{
private const string ConnectionString = "context connection = true";
private const string ReadInsertedTable = @"
SELECT ID,
(
SELECT *
FROM inserted AS …Run Code Online (Sandbox Code Playgroud) 我最近将NUGET的程序包管理器(VSIX扩展)更新为版本3.5。之后,我发现UI丢失了:
(位于控制台和设置菜单项之间),这将打开用于搜索,安装,更新和删除nuget程序包的对话框。
我尝试卸载/重新安装它,但是没有运气。同样在Google和NuGET网站上查找并没有帮助我找到答案。
有人可以帮忙吗?
我正在使用angular2编写一个应用程序来读取一个简单输入的csv文件:
<input type='file' name='userFile' id='file' >
Run Code Online (Sandbox Code Playgroud)
我可以访问component.ts上的文件:
ngOnInit() {
var input = (<HTMLInputElement>document.getElementById("file"));
input.addEventListener("change", function(event) {
var files = input.files;
var len = files.length;
if (len) {
console.log("Filename: " + files[0].name);
console.log("Type: " + files[0].type);
console.log("Size: " + files[0].size + " bytes");
}
}, false);
}
Run Code Online (Sandbox Code Playgroud)
如何逐个单元格读取使用typescript,javascript或jquery上传的csv文件?(这是最好的方法).
我在尝试读取用户机密时遇到问题。我在startup.cs中的代码如下:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json",
optional: false,
reloadOnChange: true);
if (env.IsDevelopment())
{
builder.AddUserSecrets<Startup>(false);
}
builder.AddEnvironmentVariables();
Configuration = builder.Build();
}
Run Code Online (Sandbox Code Playgroud)
从 appsettings.json 和环境变量读取工作正常,但无论我在 Secrets.json 文件中放入什么内容,都不会从中读取任何值。项目文件中UserSecretsId的值是正确的,并且env.IsDevelopment()是true。
配置包含三个提供程序。一个 JsonConfigurationProvider 包含来自 appsettings.json 的数据,一个 EnvironmentVariablesConfigurationProvider 包含来自环境变量的值,还有一个 JsonConfigurationProvider 没有数据。我认为后一种是添加用户机密的一种。但为什么是空的呢?
我创建了一个名为 .NET Core 类库的新项目FooBarBaz。然后我使用包管理器控制台来运行:
Install-Package xunit xunitInstall-Package xunit xunit.runners.visualstudio这是我添加的唯一代码:
using Xunit;
using Xunit.Abstractions;
namespace FooBarBaz
{
public class Class1
{
private readonly ITestOutputHelper output;
public Class1(ITestOutputHelper output)
{
this.output = output;
output.WriteLine("OUTPUT FROM MY CONSTRUCTOR");
}
[Fact]
public void SmokeTest()
{
output.WriteLine("OUTPUT FROM MY TEST");
Assert.True(true);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这直接基于xUnit.net 文档示例。我知道文档继续讨论“消息接收器”之类的内容,但我可以发誓我在Visual Studio 的输出窗口中看到了该消息。在我的实际项目中,这似乎工作不稳定。
我知道我可以在选择测试后单击“输出”超链接并查看它,但这只是额外的一步,而且该输出也没有等宽字体(我希望有)。
看看这个:
如何配置 xUnit 以在“输出”窗口中提供输出?
我有一个包裹在 Task.Run 下的异步 lambda 表达式。但是,看起来我可以删除 async 和 await 关键字,它们会产生相同的结果。
t1 = Task.Run(() => DoSomethingExpensiveAsync());
t2 = Task.Run(() => DoSomethingExpensiveAsync());
await Task.WhenAll(t1, t2);
Run Code Online (Sandbox Code Playgroud)
对比
var t1 = Task.Run(async () => await DoSomethingExpensiveAsync());
var t2 = Task.Run(async () => await DoSomethingExpensiveAsync());
await Task.WhenAll(t1, t2);
Run Code Online (Sandbox Code Playgroud)
c# ×5
.net ×2
.net-core ×1
angular ×1
asp.net ×1
asp.net-core ×1
async-await ×1
azure ×1
c#-4.0 ×1
cab ×1
csv ×1
javascript ×1
jquery ×1
json ×1
msbuild ×1
nuget ×1
project ×1
resgen ×1
resx ×1
sql-server ×1
task ×1
typescript ×1
xunit.net ×1
zip ×1